/* ************************************************************************

   Copyright:

   License:

   Authors:

************************************************************************ */

/* ************************************************************************



************************************************************************ */

/**
* This class represents a mapscript labelObj class.
*
*/
qx.Class.define("mmclient.mapscript.LabelObj",
{
  extend : qx.core.Object,


  /*
  *****************************************************************************
     CONSTRUCTOR
  *****************************************************************************
  */

  construct : function() {
    qx.core.Object.call(this);
  },


  /*
  *****************************************************************************
     PROPERTIES
  *****************************************************************************
  */

  properties :
  {
    /**
    * TODO.
    *
    * @type: {Float}
    */
    angle :
    {
      check : "Number",
      init : 0
    },

    /**
    * MS_TRUE or MS_FALSE.
    *
    * @type: {Integer}
    */
    antialias :
    {
      check : "Number",
      init : 0
    },

    /**
    * MS_TRUE or MS_FALSE.
    *
    * @type: {Integer}
    */
    autoangle :
    {
      check : "Number",
      init : 0
    },

    /**
    * MS_TRUE or MS_FALSE. Tells mapserver to compute a curved label for appropriate linear features (see RFC 11 for specifics).
    *
    * @type: {Integer}
    */
    autofollow :
    {
      check : "Number",
      init : 0
    },

    /**
    * MS_TRUE or MS_FALSE.
    *
    * @type: {Integer}
    */
    autominfeaturesize :
    {
      check : "Number",
      init : 0
    },

    /**
    * Color of background rectangle or billboard.
    *
    * @type: {@link mmclient.mapscript.ColorObj}
    */
    backgroundcolor :
    {
      check : "Object",
      init : null
    },

    /**
    * Color of background rectangle or billboard shadow.
    *
    * @type: {@link mmclient.mapscript.ColorObj}
    */
    backgroundshadowcolor :
    {
      check : "Object",
      init : null
    },

    /**
    * Horizontal offset of drop shadow in pixels.
    *
    * @type: {Integer}
    */
    backgroundshadowsizex :
    {
      check : "Number",
      init : 0
    },

    /**
    * Vertical offset of drop shadow in pixels.
    *
    * @type: {Integer}
    */
    backgroundshadowsizey :
    {
      check : "Number",
      init : 0
    },

    /**
    * Maybe this should've been named 'padding' since that's what it is: padding in pixels around a label.
    *
    * @type: {Integer}
    */
    buffer :
    {
      check : "Number",
      init : 0
    },

    /**
    * Foreground color.
    *
    * @type: {@link mmclient.mapscript.ColorObj}
    */
    color :
    {
      check : "Object",
      init : null
    },

    /**
    * Supported encoding format to be used for labels. If the format is not supported, the label will not be drawn. Requires the iconv library (present on most systems). The library is always detected if present on the system, but if not the label will not be drawn. Required for displaying international characters in MapServer. More information can be found at: {@link http://www.foss4g.org/FOSS4G/MAPSERVER/mpsnf-i18n-en.html}.
    *
    * @type: {String}
    */
    encoding :
    {
      check : "String",
      init : ""
    },

    /**
    * Name of TrueType font.
    *
    * @type: {String}
    */
    font :
    {
      check : "String",
      init : ""
    },

    /**
    * MS_TRUE or MS_FALSE.
    *
    * @type: {Integer}
    */
    force :
    {
      check : "Number",
      init : 0
    },

    /**
    * Maximum height in pixels for scaled labels. See symbolscale attribute of layerObj.
    *
    * @type: {Integer}
    */
    maxsize :
    {
      check : "Number",
      init : 0
    },

    /**
    * Minimum distance in pixels between duplicate labels.
    *
    * @type: {Integer}
    */
    mindistance :
    {
      check : "Number",
      init : 0
    },

    /**
    * Features of this size of greater will be labeled.
    *
    * @type: {Integer}
    */
    minfeaturesize :
    {
      check : "Number",
      init : 0
    },

    /**
    * Minimum height in pixels.
    *
    * @type: {Integer}
    */
    minsize :
    {
      check : "Number",
      init : 0
    },

    /**
    * Horizontal offset of label.
    *
    * @type: {Integer}
    */
    offsetx :
    {
      check : "Number",
      init : 0
    },

    /**
    * Vertical offset of label.
    *
    * @type: {Integer}
    */
    offsety :
    {
      check : "Number",
      init : 0
    },

    /**
    * Color of one point outline.
    *
    * @type: {@link mmclient.mapscript.ColorObj}
    */
    outlinecolor :
    {
      check : "Object",
      init : null
    },

    /**
    * MS_TRUE (default) or MS_FALSE. Whether or not labels can flow past the map edges.
    *
    * @type: {Integer}
    */
    partials :
    {
      check : "Number",
      init : 1
    },

    /**
    * MS_UL, MS_UC, MS_UR, MS_CL, MS_CC, MS_CR, MS_LL, MS_LC, MS_LR, or MS_AUTO.
    *
    * @type: {Integer}
    */
    position :
    {
      check : "Number",
      init : 0
    },

    /**
    * Color of drop shadow.
    *
    * @type: {@link mmclient.mapscript.ColorObj}
    */
    shadowcolor :
    {
      check : "Object",
      init : null
    },

    /**
    * Horizontal offset of drop shadow in pixels.
    *
    * @type: {Integer}
    */
    shadowsizex :
    {
      check : "Number",
      init : 0
    },

    /**
    * Vertical offset of drop shadow in pixels.
    *
    * @type: {Integer}
    */
    shadowsizey :
    {
      check : "Number",
      init : 0
    },

    /**
    * Annotation height in pixels.
    *
    * @type: {Integer}
    */
    size :
    {
      check : "Number",
      init : 0
    },

    /**
    * MS_BITMAP or MS_TRUETYPE.
    *
    * @type: {Integer}
    */
    type :
    {
      check : "Number",
      init : 0
    },

    /**
    * Character on which legend text will be broken to make multi-line legends.
    *
    * @type: {String}
    */
    wrap :
    {
      check : "String",
      init : ""
    }
  }
});
